home *** CD-ROM | disk | FTP | other *** search
/ Aminet 25 / Aminet 25 (1998)(GTI - Schatztruhe)[!][Jun 1998].iso / Aminet / comm / tcp / rxsocket.lha / echoudp.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1998-04-05  |  1009 b   |  60 lines

  1. /*
  2.     echo udp client - Usage: echoudp host
  3. */
  4.  
  5.  
  6. parse arg host .
  7.  
  8. if host="" then do
  9.     say "Usage: echoudp <host>"
  10.     exit
  11. end
  12.  
  13. addr = inetaddr(host)
  14. if addr == -1 then do
  15.     if ~gethostbyname("HOST",host) then do
  16.         say "Host" host "non trovato."
  17.         exit
  18.     end
  19.     remote.ADDRADDR   = HOST.HOSTADDRLIST.0
  20. end
  21. else remote.ADDRADDR = addr
  22.  
  23. if ~getservbyname("SE","echo","udp") then do
  24.     say "no echo udp service"
  25.     exit
  26. end
  27.  
  28. remote.ADDRFAMILY = "INET"
  29. remote.ADDRPORT   = SE.SERVPORT
  30.  
  31. sock = socket("INET","DGRAM","IP")
  32. if sock < 0 then do
  33.     say "no socket:" ErrorString(Errno())
  34.     exit
  35. end
  36.  
  37. LOCAL.ADDRFAMILY = "INET"
  38. LOCAL.ADDRADDR     = 0
  39. LOCAL.ADDRPORT   = 0
  40. res = bind(sock,"LOCAL")
  41. if res < 0 then do
  42.     say "Non posso allocare la porta:" Errno()
  43.     exit
  44. end
  45.  
  46. data = "echo udp service test"
  47. n = sendto(sock,data,0,"REMOTE")
  48. if n<length(data) then do
  49.     say "send:"  ErrorString(Errno())
  50.     exit
  51. end
  52.  
  53. n = recvfrom(sock,"BUF",256,0,"REMOTE")
  54. if len<0 then do
  55.     say "recv:" ErrorString(Errno())
  56.     exit
  57. end
  58. say buf
  59. call closesocket(sock)
  60.